Generally, a multi-tenant system offered by an information technology (IT) service provider hosts applications, also called as multi-tenant applications. In such a system, a single instance of the application runs on a server, which is accessed by multiple clients, also referred to as tenants since such clients subscribe to a service offered by the IT service provider. In the multi-tenant system, the tenants share the same applications and the same platform and infrastructure components for processing and storing data. Thus, the multi-tenant system provides the tenants with network-based access to centralized data and incurs less cost than is incurred when using individually-provisioned software applications.
A growing number of organizations such as, information technology (IT) service providers offer multi-tenant applications to minimize cost and maximize efficiency. Further, these organizations may have to cater to different tenant requirements and may require the applications to behave based on their preferences. In order to cater to the preferences of the tenants, the multi-tenant system may be configured such that the applications provisioned and their behavior varies based on the tenant accessing the applications. The application behavioral aspects include its user interface, its processing steps, business rules, workflow, access controls, application data structures, reports, integrations with other applications, and such other application attributes. For example, the same application may generate a report that has one layout for a tenant and a different layout for another.
However, with the increase in the number of tenants, there is a corresponding increase in the variations or configurations required in a multi-tenant application hosted on the multi-tenant system. Further, supporting more variations entails maintaining additional tenant-specific metadata, which may adversely impact application performance, the administrative effort to maintain metadata, as well as the storage consumed. Therefore, conventional multi-tenant systems support limited configurability when implemented for an increased number of tenants that have varying application behavioral requirements.